//package shayu.order.listener;
//
//
//import com.alipay.api.AlipayApiException;
//import com.alipay.api.internal.util.AlipaySignature;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RestController;
//import shayu.order.config.AlipayTemplate;
//import shayu.order.service.OrderService;
//import shayu.order.vo.PayAsyncVo;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.Map;
//
//@RestController
//public class OrderPayedListener {
//
//    @Autowired
//    private AlipayTemplate alipayTemplate;
//
//    @Autowired
//    private OrderService orderService;
//
//    /**
//     *  支付宝异步通知
//     * @param vo
//     * @param request
//     * @return
//     */
//    @PostMapping("/payed/notify")
//    public String handleAlipayed(PayAsyncVo vo, HttpServletRequest request) throws AlipayApiException {
//        /**
//         *  只要我们收到了支付宝给我们异步的通知，告诉我们订单支付成功，返回success 支付就不在通知
//         *  Map<String String[]>  map=request.getParameterMap()
//         *  for(String key:map.ketSet()){
//         *         String value=request.getParameter
//         *         System.out.println("参数名"+key==>参数值+value)
//         *  }
//         */
//        // 验签
//        Map<String, String> params = new HashMap<String, String>();
//        Map<String, String[]> requestParams = request.getParameterMap();
//        for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
//            String name = iter.next();
//            String[] values = requestParams.get(name);
//            String valueStr = "";
//            for (int i = 0; i < values.length; i++) {
//                valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
//            }
//            // 乱码解决，这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
//            // valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
//            params.put(name, valueStr);
//        }
//
//        boolean signVerified = AlipaySignature.rsaCertCheckV1(params, alipayTemplate.alipay_public_key, alipayTemplate.charset, alipayTemplate.sign_type);//调用SDK验证签名
//        if(signVerified){
//            System.out.println("签名验证成功");
//            String result = orderService.handlePayResult(vo);
//            return result;
//        }else{
//            return "error";
//        }
//    }
////    @PostMapping(value = "/pay/notify")
////    public String asyncNotify(@RequestBody String notifyData) {
////        //异步通知结果
////        return orderService.(notifyData);
////    }
//}
